/** 
 * <b>Class</b> AppletReadClass
 * <p><b>Description:<b> ...</p>
 * <p><b>Copyright:<b> MiguelMonterrey © 2012</p>
 * <p><b>Enterprise:<b> ULL</p>
 * 
 * <p><b>File name:<b> AppletReadClass.java</p>
 * <p><b>Package name:<b> applets</p> 
 * <p><b>Project name:<b> EjemplosApplets</p>
 * 
 * @version 1.0, 30-oct-2012
 * @author MiguelMonterrey
 */

package applets;

import javax.swing.JPanel;

import java.applet.Applet;
import java.awt.Color;
import java.awt.TextArea;

import java.awt.Font;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JTextArea;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

// TODO: Auto-generated Javadoc
/**
 * The Class AppletReadClass.
 */
public class AppletReadClass extends Applet {
	
	/** The Constant serialVersionUID. */
	private static final long serialVersionUID = 1L;
	
	/** The file url. */
	URL fileURL;
	
	/** The input. */
	InputStream input;
    
    /** The data input. */
    DataInputStream dataInput;
    
    /** The contents. */
    TextArea contents;
    
    private JButton btnNewButton;
    private JTextArea txtrIntroduzcaLaUrl;
    
	/**
	 * Create the applet.
	 */
	public void init() {
		setBackground(new Color(191, 191, 191));
		setLayout(null);
		
		JPanel sangria = new JPanel();
		sangria.setBounds(20, 21, 1162, 443);
		add(sangria);
		sangria.setBackground(Color.white);
		sangria.setLayout(null);
		
		contents = new TextArea("Espera...", 40, 100);
		contents.setFont(new Font("LiHei Pro", Font.PLAIN, 16));
		contents.setBounds(20, 44, 1122, 377);
		
		sangria.add(contents);
		
		txtrIntroduzcaLaUrl = new JTextArea();
		txtrIntroduzcaLaUrl.setText("http://www.7-zip.org/history.txt");
		txtrIntroduzcaLaUrl.setBounds(20, 16, 943, 22);
		txtrIntroduzcaLaUrl.setBorder(javax.swing.border.LineBorder.createBlackLineBorder());
		
		sangria.add(txtrIntroduzcaLaUrl);
		
		btnNewButton = new JButton("Iniciar");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Start();
			}
		});
		btnNewButton.setBounds(975, 12, 167, 29);
			
		sangria.add(btnNewButton);
	}
	
	/**
	 * Start.
	 */
	public void Start() {
		String text;
		String url = txtrIntroduzcaLaUrl.getText();
		// "http://www.7-zip.org/history.txt"
		
		// Crea el objeto URL asociado al archive de prueba
		try {
			fileURL = new URL(url);
		} catch (MalformedURLException e) {
			showStatus("Excepción: " + e.toString());
		}
		
		try {
			// Se abre una conexión de flujo con el archivo del servidor
			// Se usa el método openStream de la clase URL para obtener un
			// objeto InputStream asociado al archivo en el servidor y asignarlo // al objeto InputStream input
			input = fileURL.openStream();
			
			// Se encadena un DataInputStream al objeto InputStream input para
			// poder usar el método readLine y así poder obtener una línea de
			// texto del archivo de texto LICENSE.txt
			dataInput = new DataInputStream(input);
			
			contents.setText("El contenido del archivo es:\n\n");
			
			// Va leyendo línea a línea
			while ((text = dataInput.readUTF()) != null)
				contents.append(text + "\n");
			
			// Se cierra el flujo de entrada
			dataInput.close();
		} catch (IOException e) {
			showStatus("Excepción: " + e.toString());
		}
	}
}



